Distributed sensing techniques for mobile devices using synchronous gestures are known. Synchronous gestures may be defined as patterns of activity performed on two or more devices in a distributed system that have a certain meaning when they occur together in time. The patterns may occur in parallel and synchronously, or they may partially overlap or even occur in a particular sequence. Example implementation and uses of synchronous gestures include the following.
One example is described in a paper by Holmquist et al., Smart-Its Friends: A Technique for Users to Easily Establish Connection between Smart Artefacts, Ubicomp 2001, Atlanta, Ga., September 2001. This paper describes a technique that allows a user to connect a pair of accelerometer-augmented handheld devices by holding the two devices together and shaking them to get common movement data. The movement data together with an ID is broadcast to all devices in listening range. When a device receives movement data from another device, the device compares the data to its own most recent movement pattern and establishes a dedicated connection based on the comparison.
Another example is described in US Patent Application No. 20040215815 to Rekimoto et al. (see also Rekimoto et al., SyncTap: An Interaction Technique for Mobile Networking, MOBILE HCI 2003). This approach describes a user interface device for specifying a network connection between information apparatuses. When a user wishes to connect two apparatuses, connection buttons on each apparatus are pressed down and released at the same time. Each apparatus then transmits packets containing the IP address of the source device and timing of the press and release of the connection buttons across the network using multicasting. The times included in the packets are then compared with those recorded within the apparatuses to enable both apparatuses to correctly identify each other.
Another example of synchronous gestures is described in US Patent Application No. 20050093868 to Hinckley et al. This application describes distributed sensing techniques for mobile devices that allow the coordination of resources of mobile computing devices to jointly execute tasks. In this method, a first gesture input is received at a first mobile computing device, and a second gesture input is received at a second mobile computing device. In response, a determination is made as to whether the first and second gesture inputs form one of a plurality of different synchronous gesture types. If it is determined that the first and second gesture inputs form the one of the plurality of different synchronous gesture types, then resources of the first and second mobile computing devices are combined to jointly execute a particular task associated with the gesture type. The devices are already connected or have previous connectivity information to enable joint execution of the task. The task that is jointly executed is determined by the gesture. An example task is the sharing of a displayed pictured between two devices, where half is displayed on each device.
Although the techniques described by the references provide gesture-based user interface for devices, these techniques have drawbacks. One drawback is that none of the described methods are scalable such that devices using the internet as their communication means can utilize them for synchronous-gesture based device-device interfacing. Some of the above mentioned methods require the devices to already be communicating with each other prior to a synchronous gesture causing an action, and other methods require that information regarding a detected gesture be multicast/broadcast to every other device within listening range. Multicasting/broadcasting gesture information by each device across the network is not scalable, is less secure than directed communications, and unnecessarily increases network traffic and processing overhead when communication is intended to be directed between two devices. In addition, prior uses of synchronous gestures require that some form of gesture information be contributed by each device and brought together for comparison. This necessary comparison step adds unnecessary processing overhead to the device or devices performing the comparisons.
As discussed above, several advantages can be obtained by eliminating the need to multicast/broadcast gesture information across the network and the need to compare the gesture information between devices in order for communication to occur between two devices. What are needed are methods and systems for determining a network address based on the physical interaction and directing communication to that network address (and therefore to the specific device assigned that network address).